home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
351-375
/
disk_370
/
sksh
/
addendum1.2.doc
< prev
next >
Wrap
Text File
|
1992-05-06
|
10KB
|
397 lines
Addendum for Version 1.2
SKSH
A ksh-like Shell for the Amiga
Version 1.5
(Copyright) 1989, 1990
Steve Koren
July 20, 1990
Addendum to Version 1.2
This document describes additions and changes to SKsh since
version 1.1.
Shell name changed
The most obvious change is that the shell is no longer
called 'Ash'. There are apparently at least two other
Amiga shells called 'Ash', so I changed the name to avoid
confusion with those shells. It is now called SKsh ("ess-
kay-shell", for Steve Koren's shell).
This name change will cause some confusion for this
release, but hopefully will prevent it in the future. For
now, note the following:
1) The .ashrc and .ashinit files are now called
.skshinit and .skshrc. Delete the old .ashinit file
and replace it with the new .skshinit file. You can
simply rename the old .ashrc file to .skshrc.
2) Delete the old Ash binary and replace it with the new
SKsh binary.
Directory expansion bug fixed!!
By far the most important change in 1.2 is that I fixed a
bug in the directory expansion mechanism that was causing
system crashes at times. This was a very serious bug, and
I had suspected it was there for quite some time, but it
took me awhile to find it. It is fixed now. (There was a
good reason I called the last two releases 'beta' versions!
:-)
$LINES and $COLUMNS set automatically
The LINES and COLUMNS variables are now set automatically
when the window is resized. Actually, the are set at the
next interactive prompt; if you resize the window while
either editing a command or running a script or function,
the variables will not be set.
The 'R' option is provided to turn this behavior off if
desired. When enabled (by default), this provides a very
nice behavior when combined with the new 'ls' output format
which uses the COLUMNS variable. You can resize the window
horizontally and not have messy directories. However,
window sizes which are too small will confuse the line
editor. Also, the value set in the COLUMNS variable is two
less than the actual column width, since the console device
scrolls at less than the actual width.
SKSH Amiga Shell Page 2 Addendum to 1.2
Run function changed
The 'run' function defined in .skshinit has been changed to
use the new -s option to which. It will now report an
error if the command to be run is not found in the search
path.
-s (silent) option added to which
A -s option has been added to the which command. which
will exit silently if the names are not found in the search
path. Without the '-s' option, it outputs a message in
this case. The '-s' option is useful in test statements:
if [ $(which -s some_file) = '' ]
then
echo "some_file not found in search path"
fi
Command Line Editing changes
The shift arrow keys can now be used to move to the
beginning of a line, the end of a line, the first history
line, or the last history line.
Also, an <esc>-. command was added which inserts the last
parameter of the previous line. See the UserMan
documentation on command line editing for details.
force bug fixed
Version 1.1 contained a bug which caused the 'force'
command to not evaluate all its arguments. The following
function now works correctly, where it would not before:
function cd {
force -b cd $*
dir
}
dir : bug fixed
A bug in 1.1 caused a 'dir :' command to enter an infinite
loop. This has been fixed in 1.2.
SKSH Amiga Shell Page 3 Addendum to 1.2
ls command enhanced
Several enhancements were added to the 'ls' command. Most
significantly, a '-F' option was added. This option can be
used to change the output of the command in a customizable
way. See the entries for the _FILE_S, _FILE_E, _DIR_S,
_DIR_E, _EXEC_S, and _EXEC_E variables in the Reference
manual for details. 'ls -F' can be used to, for example,
underline file names and highlight directory names with a
different pen color.
The short directory form now has a cleaner output. It will
examine the longest file name, the value of the $COLUMNS
variable, and adjust its display accordingly. Thus, if
there are mostly short file names in the directory, 'ls'
will use more columns for output.
The '-v' option to 'ls' now prints the total file size as
well as the number of entries printed.
.skshinit and .skshrc now movable
The two initialization files are no longer required to be
in the s: directory. They are now searched for in the
SKSH: directory. If SKSH: points to s:, then the result is
the same. SKSH: can be changed to any legal directory.
New tests added
Test expressions can now test for the script bit, the
archive bit, and the pure bit by using -S, -A, or -P. See
the test expression section of the user's guide for
details.
Break notification
Typing the break key (^c) during an SKsh command will cause
'*** break' to be printed.
Recursive copy only on -r option
In version 1.1, the copy command always did a recursive
copy (ignoring the -r option). This has been fixed.
Touch command added
A new 'touch' command has been added which 1) creates files
if they do not already exist, and 2) updates the
modification times on files if they do exist.
SKSH Amiga Shell Page 4 Addendum to 1.2
Clone (-c) option on cp
The 'cp' command now supports a -c (clone) option which
duplicates the file times and protection status on all
files copied. The clone option is not the default, but can
be made to act like it with the following alias:
alias cp = 'force -b cp -c'
quit alias added
A 'quit' alias has been added that is like 'exit', but does
not execute the value of the LOGOUT first.
cp buffer size increased
The 'cp' buffer size has been increased to 32K from 4K.
This should reduce thrashing when copying a file to another
location on the same floppy. Also, the buffer is now
dynamically allocated, not placed on the stack as with SKsh
1.1.
chmod command added
SKsh now has a built-in chmod command. Permissions can be
set to an explicit value or added or subtracted. Also,
more than one file can be operated upon at once. See the
reference manual for details.
Documentation updates
The documentation has been updated to reflect the changes
in 1.2, and some documentation bugs have been fixed. In
particular, note that the installation instructions have
changed; please insure that you have correctly performed
all the steps listed.
SKSH Amiga Shell Page 5 Addendum to 1.2
Other Notes
I am considering this to be the first "real" (non-beta)
release of SKsh. I will, of course, continue to enhance it in
the future. I believe most of the critical bugs are worked
out now; I'm sure there are still some bugs left, but
hopefully nothing like the directory expansion bug above that
was causing system crashes.
One final note: be sure that you re-install the .skshinit file
in the s: directory, since it has changed from version 1.0.
The .skshrc file has not changed, so that one need not be re-
installed. (In fact, that is the concept behind having two
init files; all users changes should be in .skshrc so they
will not be overwritten by updates of .skshinit.)
SKSH Amiga Shell Page 6 Addendum to 1.2